package com.uw.scenic.controller;


/**
 * 案例：
 *  用于测试远程微服务的调用
 *  增删改查的案例
 * @author yls
 * @date 2021-03-02
 *
 */

import com.uw.scenic.annotation.IgnoreResponseAdvice;
import com.uw.scenic.feigin.TestUserClient;
import com.uw.scenic.vo.R;
import com.uw.scenic.vo.SysUserVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/testFegin")
@Api(value = "testFegin", tags = "远程微服务调用")
public class TestFeginController {
//
//    @Autowired
//    private TestUserClient testUserClient;
//
//
//    /**
//     * 案例一：  测试fegin远程调用
//     * @return
//     */
//    @ApiOperation(value = "测试fegin远程调用",notes = "测试fegin远程调用",httpMethod = "GET")
//    @GetMapping("/getById")
//    public R<SysUserVO> getById() {
//        return testUserClient.getById();
//    }
//
//
//    /**
//     * 案例二：  fegin调用返回方直接是SysUserVO,此处做了响应的数据增强，即使返回的是SysUserVO，也会自动用R对象来包装
//     * @return
//     */
//    @ApiOperation(value = "调取用户微服务获取用户详情",notes = "调取用户微服务获取用户详情",httpMethod = "GET")
//    @GetMapping("/getById2")
//    public  R<SysUserVO>  getById2() {
//        R<SysUserVO>  sysUserVO=testUserClient.getById2();
//        return sysUserVO;
//    }


//    /**
//     * 案例三：  fegin调用返回方直接是SysUserVO,此处做了响应的数据增强，即使返回的是SysUserVO，也会自动用R对象来包装
//     * 不想用R对象来包装
//     * @return
//     */
//    @ApiOperation(value = "调取用户微服务获取用户详情",notes = "调取用户微服务获取用户详情",httpMethod = "GET")
//    @GetMapping("/getById3")
//    @IgnoreResponseAdvice
//    public  SysUserVO  getById3() {
//        return testUserClient.getById3();
//    }


//    /**
//     * 测试熔断机制
//     * @return
//     */
//    @ApiOperation(value = "测试熔断机制",notes = "测试熔断机制",httpMethod = "GET")
//    @GetMapping("/getById4")
//    @IgnoreResponseAdvice
//    public  SysUserVO  getById4() {
//        return testUserClient.getById4();
//    }

}
